為了提高模型的準確率,我們需要使用CNN,我們先來認識一下卷積神經網路(CNN)是什麼吧。
- 卷積層(Convolutional Layer)
通過卷積運算,提取輸入數據的局部特徵。每個卷積核會在輸入數據上滑動,生成特徵圖。這讓它能夠捕捉圖像中的空間關係,並減少參數數量。而卷積運算是將原始圖片的與特定的filter運算,就是將下圖兩個3x3的矩陣作相乘後再相加:
- 池化層(Pooling Layer)
降低特徵圖的尺寸,減少計算量和過擬合的風險。常見的池化方法有最大池化和平均池化。
在下方矩陣中,只要挑出當中的最大值,這個做法叫Max Pooling。
- 全連接層(Fully Connected Layer)
將前面的特徵圖展平並連接到輸出層,用於最終的分類或預測。
- 激活函數(Activation Function)
常用的激活函數有ReLU、Sigmoid和Tanh等,引入非線性特性,使模型能夠學習更複雜的映射。
從上述介紹中能發現,它可以達到很高的準確率有幾個主要的原因,第一個是減少參數數量和引入池化操作,降低過擬合的風險。這能讓模型在未見數據上的表現更穩定,而提高準確率。第二個是池化層能夠減少特徵圖的維度,降低計算量,這可以保留重要的特徵,並抑制不必要的細節。第三個是它會自動從原始數據中提取重要特徵,讓它可以學習到更複雜的特徵。